1
La necessità del codice unsafe
AI034Lesson 19
00:00

Il linguaggio nascosto all'interno

Rust ha un segreto: in realtà due linguaggi in uno. Mentre Rust sicuro è il tuo custode, il compilatore Rust è fondamentalmente cauteloso. Segue una filosofia rigorosa: è meglio rifiutare un programma valido e sicuro piuttosto che permettere per errore un singolo programma pericoloso. Questo crea uno scarto tra ciò che l'hardware può fare e ciò che il compilatore può dimostrare.

La realtà rigida

Immagina il compilatore come un guardiano severo. Nel nostro esempio di codice, il guardiano della corrispondenza if y si applica a tutto il gruppo di modelli (4 | 5 | 6). Questa rigidità precedenza riflette come funziona il controllore di prestito; applica regole globali e intransigenti alla tua memoria. Ma l'hardware informatico sottostante è inherentemente non sicuro; non comprende proprietà o durata. Per creare strumenti ad alte prestazioni come split_at_mut, dobbiamo entrare nel Rust unsafe 'passaggio di fuga' per eseguire operazioni tecnicamente corrette ma logicamente troppo complesse per l'analisi statica del compilatore.

Tutto il codice tecnicamente sicuroProva sicuro (controllore di prestito)La necessità del codice unsafe

Lo spazio tra i cerchi rosso e verde è dove vive il codice unsafe: ci permette di raggiungere il massimo potenziale dell'hardware quando l'analisi statica fallisce.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>